package com.ht.api.task.ad;

import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;

import com.ht.api.business.ad.PlanHelper;
import com.ht.api.db.DbConfig;
import com.ht.api.db.Entity;
import com.ht.api.db.task.DataToCacheTask;

import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;

/**
 * 创建运营手动计划
 * @author asq
 * @createTime 2025年3月7日 12:52:03
 */
@Slf4j
public class CreatePlanTask extends DataToCacheTask{

	@Override
	public String getName() {
		return "创建运营手动计划";
	}

	@Override
	protected List<Entity> getDbList(JSONObject param, String groupId, long taskId) {
		// 获取数据源
		long tenantId = param.getLong("tenant_id");
		DataSource ds = DbConfig.useTenantDb(tenantId);

		// 获取参数
		Entity touchUser = param.getBean("touchUser", Entity.class);
		Entity campaignItem = param.getBean("campaignItem", Entity.class);
		Entity plan = param.getBean("plan", Entity.class);
		String oneid = touchUser.getStr("oneid");

		// 选择对应的创意
		Entity creative = PlanHelper.findCreativeByCampaignItem(ds, campaignItem, oneid);

		if (creative == null) { // 没有创意，则不用创建广告任务
			return null ;
		}

		// 创建广告任务
		Entity userAdTask = PlanHelper.buildAdTaskToUser(plan, touchUser, campaignItem, creative);

		List<Entity> list = new ArrayList<>();
		list.add(userAdTask);

        return list;
	}
}
